Forming a Convex Polygon of Mobile Sensors

ABSTRACT

Forming a convex polygon of a plurality of mobile sensors in an area is provided. Sensor output data received from the plurality of mobile sensors in the area is analyzed using an optimization problem. It is determined whether the plurality of mobile sensors forms the convex polygon in the area. In response to determining that the plurality of mobile sensors does form the convex polygon in the area, an objective function and a set of constraints corresponding to the optimization problem are generated. Then, a sparse solution of the optimization problem is calculated using the objective function and the set of constraints to determine vector weight values for each of the plurality of mobile sensors.

BACKGROUND

1. Field

The disclosure relates generally to analyzing sensor data and morespecifically to analyzing collected sensor data from a plurality ofmobile sensors within a wireless network to determine a current statusof an area by solving an optimization problem over a convex polygonformed by the plurality of mobile sensors in the area.

2. Description of the Related Art

A wireless sensor network is a collection of stationary sensor nodes,linked via some form of wireless communication network. The wirelesssensor network may be built from a few sensor nodes to several hundredsor even thousands of sensor nodes. These sensor nodes are devices thatmay include a variety of sensor types to monitor the environment inwhich the sensor nodes are deployed. The different types of sensors maybe, for example, sensors for detecting temperature, sound, vibration,pressure, motion, or pollutants. Wireless sensor networks include anumber of unique characteristics, such as an ability to detect mobilityof monitored events, heterogeneity of sensor nodes, large scaledeployments, and unattended operation.

SUMMARY

According to one embodiment of the present invention, a computerimplemented method for forming a convex polygon of a plurality of mobilesensors in an area is provided. A computer analyzes sensor output datareceived from the plurality of mobile sensors in the area using anoptimization problem. The computer determines whether the plurality ofmobile sensors forms the convex polygon in the area. In response to thecomputer determining that the plurality of mobile sensors does form theconvex polygon in the area, the computer generates an objective functionand a set of constraints corresponding to the optimization problem.Then, the computer calculates a sparse solution of the optimizationproblem using the objective function and the set of constraints todetermine vector weight values for each of the plurality of mobilesensors.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a pictorial representation of a network of data processingsystems in which illustrative embodiments may be implemented;

FIG. 2 is a diagram of a data processing system in which illustrativeembodiments may be implemented;

FIG. 3 is a diagram of a mobile sensor network in accordance with anillustrative embodiment;

FIG. 4 is a diagram illustrating an example of a sensor managementmodule in accordance with an illustrative embodiment;

FIG. 5 is a diagram illustrating an example of a decision module inaccordance with an illustrative embodiment;

FIG. 6 is a diagram illustrating an example of mobile sensor networkexpansion in accordance with an illustrative embodiment;

FIG. 7 is a diagram illustrating an example of mobile sensor networkmodification in accordance with an illustrative embodiment; and

FIG. 8 is a flowchart illustrating a process for forming a convexpolygon of mobile sensors in accordance with an illustrative embodiment.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a computer system, computer implementedmethod, or computer program product. Accordingly, aspects of the presentinvention may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.), or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module,” or “system.” Furthermore, aspects of the present invention maytake the form of a computer program product embodied in one or morecomputer readable medium(s) having computer readable program codeembodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

With reference now to the figures, and in particular, with reference toFIGS. 1-3, diagrams of data processing environments are provided inwhich illustrative embodiments may be implemented. It should beappreciated that FIGS. 1-3 are only meant as examples and are notintended to assert or imply any limitation with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environments may be made.

FIG. 1 depicts a pictorial representation of a network of dataprocessing systems in which illustrative embodiments may be implemented.Network data processing system 100 is a network of computers and otherdevices in which the illustrative embodiments may be implemented.Network data processing system 100 contains network 102, which is themedium used to provide communications links between the computers andthe other various devices connected together within network dataprocessing system 100. Network 102 may include connections, such aswire, wireless communication links, or fiber optic cables.

In the depicted example, server 104 and server 106 connect to network102, along with storage unit 108. Server 104 and server 106 may be, forexample, server computers with high speed connections to network 102.Server 104 and/or server 106 may provide services for collecting,analyzing, and monitoring sensor data obtained by a plurality of mobilesensors connected to network 102.

Clients 110, 112, and 114 also connect to network 102. Clients 110, 112,and 114 are clients to server 104 and/or server 106. In the depictedexample, server 104 and/or server 106 may provide information, such asboot files, operating system images, and applications to clients 110,112, and 114. In this particular example, clients 110, 112, and 114 aremobile devices that include a sensor, such as sensors 116, 118, and 120.Clients 110, 112, and 114 may be, for example, cellular telephones,smart phones, personal digital assistants, gaming devices, handheldcomputers, or any combination of thereof, with wireless communicationlinks to network 102. In addition, clients 110, 112, and 114 also may beany type of land, air, or water vehicle, such as a car, truck, train,plane, boat, or underwater craft, with wireless communication links tonetwork 102. Further, a vehicle may be a manned vehicle or an unmannedvehicle, such as an autonomous or semi-autonomous robotic vehicle.Furthermore, each of clients 110, 112, and 114 is free to moveindependently of the other client devices and in any direction.

Each of sensors 116, 118, and 120 may represent a set of one or moresensors. Also, the set of sensors may be sensors of a same type or maybe a combination of different types of sensors. Sensors 116, 118, and120 detect and measure, for example, physical and/or environmentalcharacteristics of an area, such as temperature, humidity, chemicalodors, gases, smoke, sound, barometric pressure, objects in the area,distance to the objects in the area, speed of movement of the objects inthe area, elevation of the area, geographic location of the area, etcetera. An object may be an animate object, such as a human, animal, orplant, or may be an inanimate object, such as fire, vehicle, orpollutant. Sensors 116, 118, and 120 also wirelessly transmit measuredsensor data to server 104 and/or server 106 via network 102.

As an example, clients 110, 112, and 114 may be equipped with a set ofsensors that are capable of detecting and measuring heat, humidity, andgases, which are produced by fire, such as carbon monoxide. When thesensors detect the event being monitored, such as heat, humidity, gases,et cetera, the sensors report the event to server 104 and/or server 106via network 102. Server 104 and/or server 106 then analyze the sensoroutput data and take the appropriate action, such as, for example, sendan alert message to a system administrator, based on the analysis of thesensor output data. Alternatively, server 104 and/or server 106 may sendthe sensor output data to another data processing system for anautomated corrective action to be taken, such as starting an automatedfire sprinkler system. Thus, illustrative embodiments by using themobile sensors will know, for example, when the fire started, where thefire is located, how hot the fire is burning, how fast the fire isspreading, what objects are in the area of the fire, and what action oractions are to be taken in the event of a fire.

Storage unit 108 is a network storage device capable of storing data ina structured or unstructured format. Storage unit 108 may, for example,provide storage of current sensor output data, historical sensor outputdata, labels for sensor output data, prototype data that correspond tothe sensor output data labels, optimization problems for determiningconvex polygons of a plurality of mobile sensors, objective functionsfor the optimization problems, constraints for the optimizationproblems, sparse solutions of the objective functions, sensor outputdata threshold values, and actions to be taken when sensor output datathreshold values are exceeded. Current sensor output data are data thatare currently being detected and measured by a plurality of mobilesensors in an area. Historical sensor output data are data that havebeen collected by a plurality of mobile sensors over a period of time inan area and may be used as a baseline to compare with current sensoroutput data for a particular area. Labels for sensor output datadescribe the type of data being measured by a plurality of mobilesensors. The labels are attached to or associated with the sensor outputdata for identification and/or classification of the sensor output data.Prototype data correspond to each of the sensor output data labels.Prototype data describe what the current status is or what is happeningin a particular area based on the corresponding sensor output datalabel. An optimization problem finds the best solution from allcandidate solutions, given a set of constraints defining which of thesolutions is a candidate solution, and an objective function definingwhich of the candidate solutions is the best solution. The objectivefunction is defined as a norm of a difference between a vectorassociated with prototype data that describes the current status of aparticular area and a sum of mobile sensor vector weight values thatrepresent the sensor output data associated with the particular area. Aconstraint is a condition that a sparse solution to an optimizationproblem is required to satisfy. A convex polygon is a geometricstructure that is made of straight lines that connect with one another.In other words, the convex polygon is a closed shape with no curves.Also, the convex polygon has no internal angles that are greater than180 degrees. Further, a corner point of the convex polygon formed by anintersection of lines is called a vertex. Furthermore, storage unit 108may store other data, such as security information that may include useridentification and passwords for system administrators. Moreover, itshould be noted that network data processing system 100 may include anynumber of additional server devices, client devices, sensor devices, andother devices not shown.

Program code located in network data processing system 100 may be storedon a computer recordable storage medium and downloaded to a computer orother device for use. For example, program code may be stored on acomputer recordable storage medium on server 106 and downloaded toclient 114 over network 102 for use on client 114.

In the depicted example, network data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, governmental,educational, and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation for thedifferent illustrative embodiments.

With reference now to FIG. 2, a diagram of a data processing system isdepicted in accordance with an illustrative embodiment. Data processingsystem 200 is an example of a computer, such as server 104 or client 110in FIG. 1, in which computer readable program code or instructionsimplementing processes of illustrative embodiments may be located. Inthis illustrative example, data processing system 200 includescommunications fabric 202, which provides communications betweenprocessor unit 204, memory 206, persistent storage 208, communicationsunit 210, input/output (I/O) unit 212, and display 214.

Processor unit 204 serves to execute instructions for softwareapplications or programs that may be loaded into memory 206. Processorunit 204 may be a set of one or more processors or may be amulti-processor core, depending on the particular implementation.Further, processor unit 204 may be implemented using one or moreheterogeneous processor systems, in which a main processor is presentwith secondary processors on a single chip. As another illustrativeexample, processor unit 204 may be a symmetric multi-processor systemcontaining multiple processors of the same type.

Memory 206 and persistent storage 208 are examples of storage devices216. A computer readable storage device is any piece of hardware that iscapable of storing information, such as, for example, withoutlimitation, data, computer readable program code in functional form,and/or other suitable information either on a transient basis and/or apersistent basis. Memory 206, in these examples, may be, for example, arandom access memory, or any other suitable volatile or non-volatilestorage device. Persistent storage 208 may take various forms, dependingon the particular implementation. For example, persistent storage 208may contain one or more devices. For example, persistent storage 208 maybe a hard drive, a flash memory, a rewritable optical disk, a rewritablemagnetic tape, or some combination of the above. The media used bypersistent storage 208 may be removable. For example, a removable harddrive may be used for persistent storage 208.

Communications unit 210, in this example, provides for communicationwith other data processing systems or devices. Communications unit 210may provide communications through the use of either or both physicaland wireless communications links. The physical communications link mayutilize, for example, a wire, cable, universal serial bus, or any otherphysical technology to establish a physical communications link for dataprocessing system 200. The wireless communications link may utilize, forexample, shortwave, high frequency, ultra high frequency, microwave,wireless fidelity (Wi-Fi), Bluetooth, global system for mobilecommunications (GSM), code division multiple access (CDMA),second-generation (2G), third-generation (3G), fourth-generation (4G),or any other wireless communication technology or standard to establisha wireless communications link for data processing system 200.

Input/output unit 212 allows for the input and output of data with otherdevices that may be connected to data processing system 200. Forexample, input/output unit 212 may provide a connection for user inputthrough a keypad, a keyboard, a mouse, and/or some other suitable inputdevice. Display 214 provides a mechanism to display information to auser.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 216, which are in communication withprocessor unit 204 through communications fabric 202. In thisillustrative example, the instructions are in a functional form onpersistent storage 208. These instructions may be loaded into memory 206for running by processor unit 204. The processes of the differentembodiments may be performed by processor unit 204 using computerimplemented instructions, which may be located in a memory, such asmemory 206. These instructions are referred to as program code, computerusable program code, or computer readable program code that may be readand run by a processor in processor unit 204. The program code, in thedifferent embodiments, may be embodied on different physical computerreadable storage devices, such as memory 206 or persistent storage 208.

Program code 218 is located in a functional form on computer readablemedia 220 that is selectively removable and may be loaded onto ortransferred to data processing system 200 for running by processor unit204. Program code 218 and computer readable media 220 form computerprogram product 222. In one example, computer readable media 220 may becomputer readable storage media 224 or computer readable signal media226. Computer readable storage media 224 may include, for example, anoptical or magnetic disc that is inserted or placed into a drive orother device that is part of persistent storage 208 for transfer onto astorage device, such as a hard drive, that is part of persistent storage208. Computer readable storage media 224 also may take the form of apersistent storage, such as a hard drive, a thumb drive, or a flashmemory that is connected to data processing system 200. In someinstances, computer readable storage media 224 may not be removable fromdata processing system 200.

Alternatively, program code 218 may be transferred to data processingsystem 200 using computer readable signal media 226. Computer readablesignal media 226 may be, for example, a propagated data signalcontaining program code 218. For example, computer readable signal media226 may be an electro-magnetic signal, an optical signal, and/or anyother suitable type of signal. These signals may be transmitted overcommunication links, such as wireless communication links, an opticalfiber cable, a coaxial cable, a wire, and/or any other suitable type ofcommunications link. In other words, the communications link and/or theconnection may be physical or wireless in the illustrative examples. Thecomputer readable media also may take the form of non-tangible media,such as communication links or wireless transmissions containing theprogram code.

In some illustrative embodiments, program code 218 may be downloadedover a network to persistent storage 208 from another device or dataprocessing system through computer readable signal media 226 for usewithin data processing system 200. For instance, program code stored ina computer readable storage media in a server data processing system maybe downloaded over a network from the server to data processing system200. The data processing system providing program code 218 may be aserver computer, a client computer, or some other device capable ofstoring and transmitting program code 218.

The different components illustrated for data processing system 200 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to, or in place of, those illustrated for dataprocessing system 200. Other components shown in FIG. 2 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of executingprogram code. As one example, data processing system 200 may includeorganic components integrated with inorganic components and/or may becomprised entirely of organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

As another example, a computer readable storage device in dataprocessing system 200 is any hardware apparatus that may store data.Memory 206, persistent storage 208, and computer readable storage media224 are examples of physical storage devices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 202 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 206 or a cache such asfound in an interface and memory controller hub that may be present incommunications fabric 202.

Illustrative embodiments represent a plurality of wireless mobilesensors as a convex polygon and determine a set of active mobile sensorsas a sparse solution of an optimization problem over the convex polygon.As a result, illustrative embodiments are able to quickly identify a setof active mobile sensors that are dynamically moving across a particulararea of interest. In addition, illustrative embodiments may add and/orremove mobile sensors from the convex polygon as needed over a period oftime. Consequently, the edges of the convex polygon may expand orcontract and the number of vertices corresponding to the convex polygonmay increase or decrease depending on the number of mobile sensorsforming the convex polygon as time progresses.

Thus, illustrative embodiments provide a computer implemented method forforming a convex polygon of a plurality of mobile sensors in an area. Acomputer analyzes sensor output data received from the plurality ofmobile sensors in the area using an optimization problem. The computerdetermines whether the plurality of mobile sensors forms the convexpolygon in the area. In response to the computer determining that theplurality of mobile sensors does form the convex polygon in the area,the computer generates an objective function and a set of constraintscorresponding to the optimization problem. Then, the computer calculatesa sparse solution of the optimization problem using the objectivefunction and the set of constraints to determine vector weight valuesfor each of the plurality of mobile sensors.

With reference now to FIG. 3, a diagram of a mobile sensor network isdepicted in accordance with an illustrative embodiment. Mobile sensornetwork 300 may be, for example, implemented in a network of dataprocessing systems, such as network data processing system 100 inFIG. 1. Mobile sensor system 300 includes mobile sensor 1 302, mobilesensor 2 304, mobile sensor N 306, and data processing system 308.Mobile sensors 302-306 may be, for example, sensors 116-120 in FIG. 1.Mobile sensors 302-306 are free to move in any direction andindependently of each other. In addition, mobile sensors 302-306 mayrepresent any number of mobile sensors ranging from three to billions ofmobile sensors connected to one or more wireless networks. Further, eachof mobile sensors 302-306 may form a vertex of a convex polygon as shownin the example illustrations of FIG. 6 and FIG. 7.

Each of mobile sensors 302-306 may represent a set of one or moresensors. Also, mobile sensors 302-306 may be any type and combination ofsensors. For example, mobile sensors 302-306 may detect and measure oneor more of the physical and/or environmental characteristics of an area,such as temperature of the area, humidity of the area, chemical odors inthe area, gases in the area, smoke in the area, sound in the area,barometric pressure of the area, objects in the area, distance to theobjects in the area, speed of movement of the objects in the area,elevation of the area, and geographic location of the area. Of course itshould be noted that mobile sensors 302-306 may be capable of detectingand measuring any type of sensor ascertainable characteristic of anarea. As an example, mobile sensors 302-306 may be configured to detectand measure social characteristics of one or more people within an area,such as, for example, a room, building, vehicle, city block, oramusement park. A social characteristic may be, for example, aninteraction between people, such as a voice level, speech content, toneof voice, level of emotion in speech, language spoken, physical contactbetween the people, type of physical contact, and the location of thephysical contact.

Mobile sensors 302-306 detect and measure sensor input 310. Sensor input310 may be, for example, audio input, video input, biometric input, orany combination thereof. Then, mobile sensors 302-306 wirelesslytransmit sensor output data 312 to data processing system 308 via anetwork, such as network 102 in FIG. 1. Sensor output data 312represents sensor input 310 after being detected, processed, andmeasured by mobile sensors 302-306. Data processing system 308 may be,for example, server 104 in FIG. 1. In addition, data processing system308 may be implemented as data processing system 200 in FIG. 2. Further,it should be noted that data processing system 308 may wirelesslycontrol the function and operation of mobile sensors 302-306.

Data processing system 308 receives sensor output data 312 from mobilesensors 302-306. Then, data processing system 308 analyzes sensor outputdata 312 using sensor management module 314. Sensor management module314 represents sensor output data 312, which was detected by mobilesensors 302-306 in a particular area of interest, as a set of vectorweight values that are defined by calculating a spare solution of anoptimization problem over the convex polygon formed by mobile sensors302-306. In addition, sensor management module 314 identifies whichmobile sensors in the convex polygon are active sensors by determiningthose mobile sensors with a vector weight value that exceeds apredetermined vector weight threshold value. Further, sensor managementmodule 314 determines which mobile sensors in the plurality of mobilesensors are to be included in the convex polygon and which of the mobilesensors should be removed. The mobile sensors that should be removed arethose mobile sensors with a vector weight value below the predeterminedvector weight threshold value or those mobile sensors that are no longerwithin a maximum defined range for the area of interest. In other words,sensor management module 314 makes sure that at least a set of mobilesensors in the plurality of mobile sensors in the area form a convexpolygon.

It should be noted that even though a convex polygon is a 2-dimensionalgeometric structure, illustrative embodiments may be utilized in3-dimensional space as well. In other words, illustrative embodimentsmay form a convex hull of a plurality of mobile sensors 3-dimensionallyin an area instead of forming a convex polygon. A convex hull may be,for example, a convex polyhedron, which is a closed 3-dimensionalgeometric shape with flat faces and straight edges formed by a pluralityof connected convex polygons. Thus, when a plurality of mobile sensorsis measuring data 3-dimensionally in an area rather than2-dimensionally, sensor management module 314 represents sensor outputdata 312 as a set of vector weight values that are defined bycalculating a sparse solution of an optimization problem over the convexhull formed by the plurality of mobile sensors in the particular area ofinterest.

Afterward, sensor management module 314 sends sensor output data 312received from mobile sensors 302-306 that form the convex polygon todecision module 316. Decision module 316 determines what the currentstatus is of the particular area of interest based on an analysis of thesensor output data received from mobile sensors 302-306 that form theconvex polygon. In addition, decision module 316 determines what actionto take based on what the determined current status is of the particulararea of interest. For example, decision module 316 may take no action ifthe current status of the area is determined to be within normal limitsbased on the sensor output data being between predetermined maximum andminimum sensor threshold values for the area. However, decision module316 may perform one or more actions when the current status of the areais outside of normal limits based on the sensor output data being aboveor below the predetermined maximum and minimum sensor threshold valuesfor the area. An action may be, for example, to alert emergencypersonnel, such as firemen, of the situation, such as fire, occurring inthe particular area of interest.

Assume that each mobile sensor T_(i) ^(t), i=1, . . . n in a pluralityof mobile sensors within a wireless network is represented as a dynamicm-dimensional vector with values that represent some type of sensormeasurement at some point in time t. These sensor measurements may be,for example, a carbon monoxide concentration level at a mobile sensorT_(i) location within a particular area at a specific point in time t.The geometric structure that covers mobile sensors T₁, . . . , T_(n) maybe defined as a convex polygon of the mobile sensors (i.e., a sum of allvector weight values corresponding to mobile sensors T_(i). By denotingvector weight values at point in time t as β^(t)=(β₁ ^(t), β₂ ^(t), . .. β₁ ^(t))ε R^(n), illustrative embodiments define the convex polygoncorresponding to vertexes T₂ ^(t), t=1, . . . n as

$\begin{matrix}{{P^{t} = {{\beta_{1}^{t}*T_{1}^{t}} + {\beta_{2}^{t}*T_{2}^{t}} + \ldots + {\beta_{n}^{t}*T_{n}^{t}}}}{{such}\mspace{14mu} {that}}{{\sum\limits_{i = 1}^{n}\; \beta_{i}^{t}} = 1}{and}{\beta_{i}^{t} \geq 0.}} & (1)\end{matrix}$

This convex polygon changes in size and shape with the passage of timeas vectors T_(i) ^(t) change. Assume also that there is some objectivefunction F(β, T^(t), y^(t)) that defines how sensor measured eventsy^(t), which may be represented as a vector weight value that depends ontime, may be defined as a point in a convex polygon P^(t). Assume that apoint p^(t)=Σβ_(i) ^(t)T_(i) ^(t) in the convex polygon P^(t) iscalculated as a sparse solution of the optimization problem

$\begin{matrix}{\mspace{79mu} {{\text{?} = {\arg \; {\min\limits_{\beta}\; {F\left( {\beta,\text{?},\text{?}} \right)}}}}\mspace{79mu} {{such}\mspace{14mu} {that}}\mspace{79mu} {{\sum\limits_{i = 1}^{n}\; \beta_{i}^{t}} = 1}\mspace{79mu} {and}\mspace{79mu} {\text{?} \geq 0.}{\text{?}\text{indicates text missing or illegible when filed}}}} & (2)\end{matrix}$

This optimization problem provides a strategy for determining whichmobile sensors in a plurality of mobile sensors in an area to keep forsome predetermined interval of time. For example, illustrativeembodiments will include those mobile sensors T_(i) that have therevector weight values β_(i) ^(t) non-zero for a period of time that isabove a time interval threshold value. In addition, illustrativeembodiments will exclude other mobile sensors if their correspondingvector weight values β_(i) ^(t) are below a predetermined vector weightthreshold value. Thus, illustrative embodiments are able to generateconvex polygons that dynamically change over time by the inclusionand/or exclusion of mobile sensors in an area. One way to introducesensor measured events y into the optimization problem is to have somedescription of the situation occurring in the area (e.g., prototypedata) defined as a vector that should match the sensor measurements insome way. This may be performed if, for example, sensor measured eventsy represent control sensor measurements that were detected by a specialcontrol mobile sensor system, which arrived in an area because someevent occurred that required attention, such as a fire, trafficaccident, or the like. Alternatively, sensor measured events y mayrepresent some mobile sensor measurement that provides qualitativeinformation about the current status of an area of interest that iscovered by a plurality of mobile sensors forming a convex polygon. Forexample, sensor measured event y_(i)=1 if a carbon monoxideconcentration within an area formed by the convex polygon is defined aslow (i.e., below a predetermined low carbon monoxide threshold value=nofire) or sensor measured event y₁=10 if the carbon monoxideconcentration within the area formed by the convex polygon is defined ashigh (i.e., above a predetermined high carbon monoxide thresholdvalue=fire). Similarly, sensor measured event y₂=1 if a traffic patternwithin an area formed by a convex polygon is defined as low (i.e., belowa predetermined low traffic pattern threshold value=no accident) orsensor measured event y₂=10 if the traffic pattern within the areaformed by the convex polygon is defined as high (i.e., above apredetermined high traffic pattern threshold value=accident). In thisway, every entry for sensor measured events y may be represented as anumber on a scale, such as, for example, on a scale of 1 to 10.

An example of the objective function F may be

F=|y−Hβ| ²−λ|β|²  (3)

where illustrative embodiments generate matrix H using vectors of mobilesensors T_(i) as columns. This objective function F is concave forsufficiently large λ(e.g., λ|β|² plays a role of a penalty). Thesolution of equation 3 is often sparse even if λ is small and objectivefunction F is not concave since a solution of unconstrained problem

$\begin{matrix}{\mspace{79mu} {{\beta^{t} = {\arg \; {\min\limits_{\beta}{F\; \left( {\beta,\text{?},\text{?}} \right)}}}}{\text{?}\text{indicates text missing or illegible when filed}}}} & (4)\end{matrix}$

often lies outside an area covered by a convex polygon P and aprojection of {circumflex over (β)}^(t) on the convex polygon P isusually sparse because {circumflex over (β)}^(t) projects on some convexpolygon edges or boundaries, which means that some vector weight valuesβ_(i) become a zero value.

With reference now to FIG. 4, a diagram illustrating an example of asensor management module is depicted in accordance with an illustrativeembodiment. Sensor management module 400 may be, for example, sensormanagement module 314 in FIG. 3. Sensor management module 400 includesmodules 402-408. However, it should be noted that sensor managementmodule 400 is only intended as an example and may include more or fewermodules depending on alternative illustrative embodiments.

Module 402 is a module for generating a convex polygon of a plurality ofmobile sensors, such as mobile sensors 302-306 in FIG. 3. Module 402 maygenerate the convex polygon by utilizing a set of mobile sensors in theplurality of mobile sensors. The set of mobile sensors may include allof the plurality of mobile sensors in a particular area of interest, aportion of the plurality of mobile sensors, or only those mobile sensorsin the plurality of mobile sensors that have a determined vector weightvalue above a predetermined vector weight threshold value.

Module 404 is a module for generating an optimization problem with anobjective function and a set of constraints associated with the convexpolygon of the plurality of mobile sensors. Module 406 is a module forcalculating a sparse solution of the optimization problem to determinedvector weight values for each of the plurality of mobile sensors. Module408 is a module for eliminating one or more mobile sensors from theconvex polygon of the plurality of mobile sensors with a determinedvector weight value below a predetermined vector weight threshold value.In other words, a mobile sensor with a determined vector weight valuebelow the predetermined vector weight threshold value is notcontributing a significant level of sensor output data or no sensor dataat all. Thus, module 408 will not include those mobile sensors with adetermined vector weight value below the predetermined vector weightthreshold value in the convex polygon. In addition, module 408 mayeliminate or not consider vector weight values of mobile sensors thatlie within the boundaries or edges of the convex polygon. Further,sensor management module 400 also may include a module for adding one ormore mobile sensors to the convex polygon of the plurality of mobilesensors with a determined vector weight value above the predeterminedvector weight threshold value.

With reference now to FIG. 5, a diagram illustrating an example of adecision module is depicted in accordance with an illustrativeembodiment. Decision module 500 may be, for example, decision module 316in FIG. 3. Decision module 500 includes modules 502-508. However, itshould be noted that decision module 500 is only intended as an exampleand may include more or fewer modules depending on alternativeillustrative embodiments.

Module 502 is a module for associating labels with sensor output datareceived from a plurality of mobile sensors that form a convex polygonover a particular area of interest. Module 504 is a module for matchingthe labels associated with the sensor output data received from theplurality of mobile sensors that form the convex polygon with prototypedata. Prototype data describes the situation occurring in, or thecurrent status of, the particular area of interest. Module 506 is amodule for analyzing the sensor output data received from the pluralityof mobile sensors that form the convex polygon based on the prototypedata corresponding to the matching labels to determine a current statusof the particular area of interest associated with the convex polygon.Module 508 is a module for determining an action to perform based on thecurrent status of the particular area of interest associated with theconvex polygon.

With reference now to FIG. 6, a diagram illustrating an example ofmobile sensor network expansion is depicted in accordance with anillustrative embodiment. Mobile sensor network expansion 600 illustrateshow a wireless network consisting of a plurality of mobile sensors,which form a convex polygon, can expand over time. For example, convexpolygon 602 at time T1 608 includes mobile sensor S1 614, mobile sensorS2 616, mobile sensor S3 618, mobile sensor S4 620, mobile sensor S5622, and mobile sensor S6 624. In other words, six mobile sensors formconvex polygon 602 at time T1 608.

Also, it should be noted that each of the six mobile sensors 614-624forms a vertex of convex polygon 602. At time T2 610, mobile sensors614-624 form the vertices of convex polygon 604, which expand the edgesof convex polygon 602 as mobile sensors 614-624 move in an outwarddirection from the vertices of convex polygon 602 from time T1 608 totime T2 610. At time T3 612, mobile sensors 614-624 form the vertices ofconvex polygon 606. However, it should be noted that mobile sensors614-624 are moving in a different direction between times T2 610 and T3612. As a result, the shape of convex polygon 606 is different from theshape of convex polygons 602 and 604. As noted above, each of the mobilesensors may move in any direction, at any time.

Moreover, a state of a mobile sensor may change, for example, from an ONstate to an OFF state, at any time. As a result, a sensor managementmodule, such as sensor management module 314 in FIG. 3, will eliminatefrom the convex polygon a mobile sensor that changes state from an ONstate to an OFF state. Thus, the size and the shape of the convexpolygon may continually change over passage of time as the sensormanagement module eliminates mobile sensors from or adds mobile sensorsto the convex polygon. However, in this example all six mobile sensors614-624 remain in convex polygons 602-606 from time T1 608 through timeT3 612.

With reference now to FIG. 7, a diagram illustrating an example ofmobile sensor network modification is depicted in accordance with anillustrative embodiment. Mobile sensor network modification 700illustrates how a wireless network consisting of a plurality of mobilesensors, which form a convex polygon, changes over a period of time. Forexample, convex polygon 702 at time T1 708 includes mobile sensor S1714, mobile sensor S2 716, mobile sensor S3 718, mobile sensor S4 720,mobile sensor S5 722, and mobile sensor S6 724. In other words, sixmobile sensors form convex polygon 702 at time T1 708.

Also, it should be noted that each of the six mobile sensors 714-724form a vertex of convex polygon 702. At time T2 710, mobile sensors714-724 form the vertices of convex polygon 704, which is an expansionof the edges of convex polygon 702 as mobile sensors 714-724 move in anoutward direction from the vertices of convex polygon 702 from time T1708 to time T2 710. However at time T3 712, mobile sensors 714-724 aremoving in a different direction between times T2 710 and T3 712. As aresult, the shape of convex polygon 706 is different from the shape ofconvex polygons 702 and 704.

In addition, it should be noted that mobile sensor S1 714 at time T3 712is no longer eligible to be included in convex polygon 706. For example,the weighted vector value of mobile sensor S1 714 at time T3 712 may nowbe below a predetermined weighted vector threshold value and notconsidered significant. For example, mobile sensor S1 714 may beconfigured to detect and measure levels of carbon monoxide. Assume attime T2 710, the level of carbon monoxide detected by mobile sensor S1714 was above a predetermined carbon monoxide threshold value. Highlevels of carbon monoxide are significant in that higher concentrationsof carbon monoxide may indicate fire or other dangerous condition in anarea. Then assume at time T3 712 the level of carbon monoxide detectedby mobile sensor S1 714 was below the predetermined carbon monoxidethreshold value and thus determined insignificant. As a result, a sensormanagement module, such as sensor management module 314 in FIG. 3, willkeep the vertex associated with mobile sensor S1 714 at time T2 710 inconvex polygon 706 when the vector weight value of mobile sensor S1 714was still considered significant and eliminate mobile sensor S1 714 attime T3 712 from convex polygon 706.

Further, it should be noted that convex polygon 706 includes sevenvertices instead of the six vertices included in convex polygons 702 and704. In this example, the sensor management module adds a new mobilesensor, mobile sensor S7 726, to convex polygon 706. Assume at time T3712, the level of carbon monoxide detected by mobile sensor S7 726 wasabove the predetermined carbon monoxide threshold value. As a result,the sensor management module adds a vertex associated with mobile sensorS7 726 at time T3 712 to convex polygon 706 because the weighted vectorvalue of mobile sensor S7 726 is considered significant. Thus, thesensor management module manages this elastic (i.e., expanding andcontracting) network of mobile sensors. The sensor management module mayrecalculate the size and shape of the convex polygon based on the numberand location of the mobile sensors comprising the convex polygon everyten seconds, for example. However, illustrative embodiments mayrecalculate the convex polygon of mobile sensors in a particular area atany time interval, such as every one second, five seconds, ten seconds,15 seconds, 30 seconds, one minute, five minutes, ten minutes, 15minutes, 30 minutes, one hour, one day, or any other increment of time.

Furthermore, the sensor management module may define a time limit forthe use of previously recorded vector weight values associated with amobile device that is no longer eligible for inclusion in the convexpolygon for an area. The time limit defines when previously recordedvector weight values associated with a mobile device become stale andare no longer statistically significant. Moreover, the sensor managementmodule may define a maximum zone for a particular area. For example, thesensor management module may define the maximum zone for a particulararea in terms of feet, yards, miles, or any other increment ofmeasurement. In addition, the sensor management module may define themaximum zone for an area in terms of a room in a building, an entirebuilding, a city block, an entire city, a county, a state, a country, ahemisphere, or the entire globe depending on the scope of the servicebeing provided and/or what the mobile sensors are monitoring.

With reference now to FIG. 8, a flowchart illustrating a process forforming a convex polygon of mobile sensors is shown in accordance withan illustrative embodiment. The process shown in FIG. 8 may beimplemented in a computer, such as, for example, data processing system200 in FIG. 2 or data processing system 308 in FIG. 3.

The process begins when the computer receives sensor output data from aplurality of mobile sensors in an area via a wireless network (step802). The sensor output data from the plurality of mobile sensors maybe, for example, sensor output data 312 from mobile sensors 302-306 inFIG. 3. Afterward, the computer analyzes the sensor output data receivedfrom the plurality of mobile sensors in the area using an optimizationproblem (step 804).

Then, the computer makes a determination as to whether the plurality ofmobile sensors forms a convex polygon in the area (step 806). The convexpolygon may be, for example, convex polygon 602 in FIG. 6. If thecomputer determines that the plurality of mobile sensors does not form aconvex polygon in the area, no output of step 806, then the computerforms the convex polygon using the plurality of mobile sensors (step808). Thereafter the process proceeds to step 810. If the computerdetermines that the plurality of mobile sensors does form a convexpolygon in the area, yes output of step 806, then the computer generatesan objective function and a set of constraints corresponding to theoptimization problem (step 810).

In addition, the computer calculates a sparse solution of theoptimization problem using the objective function and the set ofconstraints to determine vector weight values for each of the pluralityof mobile sensors (step 812). Subsequently, the computer makes adetermination as to whether there are mobile sensors in the plurality ofmobile sensors with a vector weight value below a vector weightthreshold value (step 814). If the computer determines that there are nomobile sensors in the plurality of mobile sensors with a vector weightvalue below a vector weight threshold value, no output of step 814, thenthe computer resets the vector weight threshold value (step 816). Thecomputer may reset the vector weight threshold value by increasing thevector weight threshold value to increase the statistical significanceof received sensor output data. However, it should be noted thatillustrative embodiments may modify the process in other ways if thecomputer determines that there are no mobile sensors in the plurality ofmobile sensors with a vector weight value below a vector weightthreshold value. Thereafter, the process returns to step 802 where thecomputer continues to receive sensor output data from the plurality ofmobile sensors in the area.

If the computer determines that there are mobile sensors in theplurality of mobile sensors with a vector weight value below a vectorweight threshold value, yes output of step 814, then the computerremoves those mobile sensors in the plurality of mobile sensors thathave a vector weight value below the vector weight threshold value fromthe convex polygon (step 818). Further, the computer adds new mobilesensors in a neighborhood of the convex polygon that have a vectorweight value above the vector weight threshold value to the convexpolygon (step 820). Thereafter, the process returns to step 802 wherethe computer continues to receive sensor output data from the pluralityof mobile sensors in the area.

Thus, illustrative embodiments provide a computer implemented method forforming a convex polygon of a plurality of mobile sensors in an area.The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiment. The terminology used herein was chosen to best explain theprinciples of the embodiment, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed here.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A computer implemented method for forming a convex polygon of a plurality of mobile sensors in an area, the computer implemented method comprising: analyzing, by a computer, sensor output data received from the plurality of mobile sensors in the area using an optimization problem; determining, by the computer, whether the plurality of mobile sensors forms the convex polygon in the area; responsive to the computer determining that the plurality of mobile sensors does form the convex polygon in the area, generating, by the computer, an objective function and a set of constraints corresponding to the optimization problem; and calculating, by the computer, a sparse solution of the optimization problem using the objective function and the set of constraints to determine vector weight values for each of the plurality of mobile sensors.
 2. The computer implemented method of claim 1 further comprising: determining, by the computer, whether there are mobile sensors in the plurality of mobile sensors with a vector weight value below a vector weight threshold value; responsive to the computer determining that there are mobile sensors in the plurality of mobile sensors with a vector weight value below a vector weight threshold value, removing, by the computer, those mobile sensors in the plurality of mobile sensors that have a vector weight value below the vector weight threshold value from the convex polygon.
 3. The computer implemented method of claim 2 further comprising: responsive to the computer determining that there are no mobile sensors in the plurality of mobile sensors with a vector weight value below the vector weight threshold value, resetting, by the computer, the vector weight threshold value.
 4. The computer implemented method of claim 3, wherein the computer resets the vector weight threshold value by increasing the vector weight threshold value to increase the statistical significance of received sensor output data.
 5. The computer implemented method of claim 1 further comprising: adding, by the computer, new mobile sensors in a neighborhood of the convex polygon that have a vector weight value above the vector weight threshold value to the convex polygon.
 6. The computer implemented method of claim 1 further comprising: generating, by the computer, the convex polygon using a set of mobile sensors in the plurality of mobile sensors.
 7. The computer implemented method of claim 1 further comprising: associating, by the computer, labels with the sensor output data received from the plurality of mobile sensors that form the convex polygon over the area, wherein the labels describe a type of data being measured by the plurality of mobile sensors.
 8. The computer implemented method of claim 7 further comprising: matching, by the computer, the labels associated with the sensor output data received from the plurality of mobile sensors that form the convex polygon with prototype data, wherein the prototype data describes a current status of the area.
 9. The computer implemented method of claim 8, further comprising: analyzing, by the computer, the sensor output data received from the plurality of mobile sensors that form the convex polygon based on the prototype data corresponding to the matching labels to determine the current status of the area associated with the convex polygon.
 10. The computer implemented method of claim 9, further comprising: determining, by the computer, an action to perform based on the current status of the area associated with the convex polygon.
 11. The computer implemented method of claim 1, wherein the computer receives the sensor output data from the plurality of mobile sensors in the area via a wireless network.
 12. The computer implemented method of claim 1, wherein each of the plurality of mobile sensors is free to move in any direction and independently of other mobile sensors in the plurality of mobile sensors.
 13. The computer implemented method of claim 1, wherein the objective function is a difference between a vector associated with prototype data that describes a current status of the area and a sum of vector weight values associated with the plurality of mobile sensors that represent the sensor output data.
 14. The computer implemented method of claim 1, wherein the sensor output data is time dependent.
 15. The computer implemented method of claim 1, wherein the sensor output data corresponding to the area is represented as a set of vector weight values that are defined by solving the optimization problem over the convex polygon.
 16. The computer implemented method of claim 1, wherein each of the plurality of mobile sensors is located in a mobile client device.
 17. The computer implemented method of claim 16, wherein the mobile client device that includes a set of sensors is a vehicle.
 18. The computer implemented method of claim 16, wherein the mobile client device that includes a set of sensors is a wireless communication device.
 19. The computer implemented method of claim 1, wherein the set of constraints is a set of conditions that the sparse solution of the optimization problem is required to satisfy.
 20. The computer implemented method of claim 1, wherein at least one of a size and a shape of the convex polygon changes over a period of time. 